package com.ytjj.qmyx.admin.mapper;

import com.ytjj.qmyx.admin.model.ImServiceUser;
import com.ytjj.qmyx.admin.model.ImServiceUserExample;
import java.util.List;

import com.ytjj.qmyx.admin.model.dto.ImServiceUserDto;
import com.ytjj.qmyx.admin.model.response.im.ImRealTimeServiceDateListResponse;
import com.ytjj.qmyx.admin.model.response.im.ImServiceUserResponse;
import org.apache.ibatis.annotations.Param;

public interface ImServiceUserMapper {
    long countByExample(ImServiceUserExample example);

    int deleteByExample(ImServiceUserExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(ImServiceUser record);

    int insertSelective(ImServiceUser record);

    List<ImServiceUser> selectByExample(ImServiceUserExample example);

    ImServiceUser selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") ImServiceUser record, @Param("example") ImServiceUserExample example);

    int updateByExample(@Param("record") ImServiceUser record, @Param("example") ImServiceUserExample example);

    int updateByPrimaryKeySelective(ImServiceUser record);

    int updateByPrimaryKey(ImServiceUser record);

    List<ImServiceUserResponse> selectByUserId(@Param("userId") String userId);

    List<ImRealTimeServiceDateListResponse> queryOnlineServiceNum(@Param("status") Integer status,@Param("groupId") Integer groupId,@Param("compellation") String compellation);

    List<ImServiceUserDto> selectServiceByStatus();//查询当前在线客服

    int updateStatusByUserId(@Param("status") Byte status,@Param("userId") String userId);

    List<String> selectServiceNameByGroupId(@Param("groupId") Integer groupId);

    ImServiceUserDto selectOneByUserId(@Param("userId") String userId);
}